-----Исходное сообщение----- От: Oleg Udovenko Дата: 10 января 2000 г. 2:53 Тема: ActiveXByStep Привет Артем. Один вопрос. - Как при разработке ATL COM компонента подключить DAO(используется Access)? With best regards, Oleg.
Ну спасибо Олег ;-) А то я вот тут сижу :-) Незнаю чем заняться ;-) Ну ладно. Я только покажу принцип и получу версию DAO, а уж дальше... Видно будет...
Нам надо повторить "Шаг 10 - Создаем ActiveX с ATL", только имя проекту дайте TestAtlDao и не забудьте подключить support MFC.

Добавим новый ATL Object, а тип Simple Object имя ему дайте CATLDaoTest. Добавьте метод MessageTest.
STDMETHODIMP CCATLDaoTest::MessageTest()
{
return S_OK;
}
А теперь смотрите Шаг 78. У вас должна быть Dao2535.tlb, используя её необходимо создать _DBEngine класс.
Теперь модифицируем функцию.
STDMETHODIMP CTestDao::GetInitPath()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
_DBEngine dbing;
dbing.CreateDispatch("DAO.DBEngine.35");
AfxMessageBox (dbing.GetVersion() );
return S_OK;
}
Компилируем. А теперь тестируем в VBA:
Sub TestAtlDao() Dim dbAtlDao As CATLDaoTest Set dbAtlDao = New CATLDaoTest dbAtlDao.MessageTest End Sub
Результат ...

Вообще-то нужно было использовать MessageBox, а не AfxMessageBox... Но посмотрите сработало...